package com.pchy.framework.orm.exception;


/**
 * CIC 业务异常工厂
 * 
 * @author zhaopuqing
 * @created 2011-8-29 下午02:49:11
 * @since v1.1
 * @history
 * @see
 */
public class ExceptionFactory {

//	/**
//	 * 实体不存在异常
//	 * 
//	 * @param enity
//	 *            实体不存在
//	 * @param entityId
//	 *            实体id
//	 * @return
//	 * @author He Bin
//	 * @created 2011-8-29 下午02:57:16
//	 * 
//	 */
//	public static NotFoundException createNotFoundException(
//			Class<? extends JpaEntity> entityClass, long entityId) {
//		String messageByIdString = entityClass.getSimpleName() + "'s id : ["
//				+ entityId + "]";
//		return createNotFoundException(entityClass, messageByIdString);
//	}
//
//	/**
//	 * 实体不存在异常
//	 * 
//	 * @param enity
//	 *            实体不存在
//	 * @param Map
//	 *            <String, Object> searchMap 查询条件 key 为查询的属性名称， vlaue 是要查询的值
//	 * @return
//	 * @author He Bin
//	 * @created 2011-8-29 下午02:57:16
//	 * 
//	 */
//	public static NotFoundException createNotFoundException(
//			Class<? extends JpaEntity> entityClass,
//			Map<String, ?> searchMap) {
//		String messageString = gerenateSearchMessage(entityClass, searchMap);
//		return createNotFoundException(entityClass, messageString);
//	}
//
//	/**
//	 * @param entityClass
//	 * @param searchMap
//	 * @return
//	 */
//	private static String gerenateSearchMessage(
//			Class<? extends JpaEntity> entityClass,
//			Map<String, ?> searchMap) {
//		StringBuilder searchString = new StringBuilder("");
//		String andString = " and ";
//		if (MapUtils.isNotEmpty(searchMap)) {
//			for (Entry<String, ?> entry : searchMap.entrySet()) {
//				searchString.append(entry.getKey()).append(": [")
//						.append(entry.getValue()).append(']').append(andString);
//			}
//		}
//		int searchStringLength = searchString.length();
//		int andStringLength = andString.length();
//		if (searchStringLength > andStringLength) {
//			searchString.delete(searchStringLength - andStringLength,
//					searchStringLength);
//		}
//		String messageString = entityClass.getSimpleName() + "'s search : {"
//				+ searchString.toString() + "}";
//		return messageString;
//	}
//
//	/**
//	 * 实体冲突异常
//	 * 
//	 * @param entityClass
//	 * @param entityId
//	 * @return
//	 * @author He Bin
//	 */
//	public static ConflictException createConflictException(
//			Class<? extends JpaEntity> entityClass, long entityId) {
//		String messageByIdString = entityClass.getSimpleName() + "'s id : ["
//				+ entityId + "]";
//		return createConflictException(entityClass, messageByIdString);
//	}
//
//	/**
//	 * 实体冲突异常
//	 * 
//	 * @param entityClass
//	 * @param searchMap
//	 * @return
//	 * @author He Bin
//	 */
//	public static ConflictException createConflictException(
//			Class<? extends JpaEntity> entityClass,
//			Map<String, ?> searchMap) {
//		String messageString = gerenateSearchMessage(entityClass, searchMap);
//		return createConflictException(entityClass, messageString);
//	}
//
//	private static ConflictException createConflictException(
//			Class<? extends JpaEntity> entityClass, String searchMessage) {
//		String entityCodeString = null;
//		String msg = searchMessage + ", [" + entityClass.getSimpleName()
//				+ "] has exists error!";
////		entityCodeString = JpaEntity.getEntityCode(entityClass);
//		return new ConflictException(msg, entityCodeString
//				+ "");
//	}
//
//	/**
//	 * @param entityClass
//	 * @param entityCodeString
//	 * @param messageByIdString
//	 * @return
//	 */
//	private static NotFoundException createNotFoundException(
//			Class<? extends JpaEntity> entityClass, String searchMessage) {
//		String entityCodeString = null;
//		String msg = searchMessage + ", [" + entityClass.getSimpleName()
//				+ "] doesn't exists error!";
////		entityCodeString = JpaEntity.getEntityCode(entityClass);
//		return new NotFoundException(msg, entityCodeString
//				+ "");
//	}
//
//	public static UnsupportedOperationException createrUnsupportedMethodException() {
//		return new UnsupportedOperationException("Unsupport Method Operation");
//	}
}
